package com.ruoyi.web.controller.system;

import com.ruoyi.web.model.C2ApaResourceDetail;
import com.ruoyi.web.model.C2CnidResourceDetail;
import com.ruoyi.web.service.C2ResourceDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/api/C2ResourceDetail")
public class C2ResourceDetailController {

    @Autowired
    private C2ResourceDetailService sourceDetailsService;

    /**
     * 获取 `cnid_source_version` 表中的所有字段数据
     *
     * @return 返回前端展示的 JSON 数据
     */
    @GetMapping("/cnid")
    public Map<String, Object> getCnidSourceVersionDetails() {
        // 获取 `cnid_source_version` 表中的所有字段数据（这里只是示例，您可以根据实际业务逻辑修改）
        List<Map<String, Object>> data = sourceDetailsService.getCnidSourceVersionDetails(); // 获取数据

        // 构建返回结果
        Map<String, Object> response = new HashMap<>();
        response.put("data", data);     // 存放查询的 Top30 数据
        response.put("message", "success");  // 返回成功消息
        response.put("status", 200);         // 返回状态码

        return response;
    }

    /**
     * 获取 `cnid_source_version` 表中的 Top30 数据
     *
     * @return 返回前端展示的 JSON 数据
     */
    @GetMapping("/apa")
    public Map<String, Object> getApaSourceVersionDetails() {
        // 获取 `cnid_source_version` 表中的所有字段数据（这里只是示例，您可以根据实际业务逻辑修改）
        List<Map<String, Object>> data = sourceDetailsService.getApaSourceVersionDetails(); // 获取数据

        // 构建返回结果
        Map<String, Object> response = new HashMap<>();
        response.put("data", data);     // 存放查询的所有字段数据
        response.put("message", "success");  // 返回成功消息
        response.put("status", 200);         // 返回状态码

        return response;
    }

    @GetMapping("/sortCnidResourceDetails")
    public Map<String, Object> getCnidResourceDetails(
            @RequestParam(required = false) String sortBy,
            @RequestParam(required = false, defaultValue = "asc") String sortOrder) {

        // 获取排序后的资源详情
        List<C2CnidResourceDetail> resourceDetails = sourceDetailsService.getCnidResourceDetails(sortBy, sortOrder);

        // 构建返回结果
        Map<String, Object> response = new HashMap<>();
        response.put("data", resourceDetails);     // 存放查询的所有资源详情数据
        response.put("message", "success");        // 返回成功消息
        response.put("status", 200);               // 返回状态码

        return response;
    }

    @GetMapping("/sortApaResourceDetails")
    public Map<String, Object> getApaResourceDetails(
            @RequestParam(required = false) String sortBy,
            @RequestParam(required = false, defaultValue = "asc") String sortOrder) {

        // 获取排序后的资源详情
        List<C2ApaResourceDetail> resourceDetails = sourceDetailsService.getApaResourceDetails(sortBy, sortOrder);

        // 构建返回结果
        Map<String, Object> response = new HashMap<>();
        response.put("data", resourceDetails);     // 存放查询的所有资源详情数据
        response.put("message", "success");        // 返回成功消息
        response.put("status", 200);               // 返回状态码

        return response;
    }
}

